﻿using FileToVideo.Config;
using FileToVideo.Enums;
using FileToVideo.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FileToVideo.Class
{
    /// <summary>
    /// 首帧数据格式
    /// </summary>
    public class FirstFrame: IFrameData
    {
        /// <summary>
        /// 帧ID
        /// </summary>
        public int frame_id { get; set; } = 0;

        /// <summary>
        /// 帧类型
        /// </summary>
        public FrameTypeMods frame_type { get; set; } = FrameTypeMods.Data;

        /// <summary>
        /// 文件名
        /// </summary>
        public string name { get; set; } = "test.file";

        /// <summary>
        /// 数据加密方式
        /// </summary>
        public CodingMode encoding { get; set; } = CodingMode.NONE;

        /// <summary>
        /// 数据编码模式
        /// </summary>
        public EncryptMode encryptMode { get; set; } = EncryptMode.NONE;

        /// <summary>
        /// 分块大小模式
        /// </summary>
        public PartSizeMode_1080P part_size { get; set; } = PartSizeMode_1080P.SIZE_8;

        /// <summary>
        /// 帧率
        /// </summary>
        public int frame_rate { get; set; } = 30;

        /// <summary>
        /// 帧重复次数
        /// </summary>
        public int frame_repetition { get; set; } = 30;

        /// <summary>
        /// 视频宽度
        /// </summary>
        public int width { get; set; } = Setting.width;

        /// <summary>
        /// 视频高度
        /// </summary>
        public int height { get; set; } = Setting.height;

        /// <summary>
        /// 是否包含Alpha通道
        /// </summary>
        public bool is_rgba { get; set; } = false;

        public string data { get; set; } = "";
    }
}
